<?php

if (!defined('BASEPATH'))
    exit('Acesso direto ao script negado.');

/**
 * Este controller processa as estatísticas do site no CMS.
 * 
 * @access public
 * @author Eliel de Paula - <elieldepaula@gmail.com> 
 * @since 14/08/2012
 * @version 0.0.1
 */
class estatisticas extends MX_Controller {

    function __construct() {
        parent::__construct();
        $this->config->load('google_analytics');
        $this->load->library('Gapi');
    }

    /**
     * Este método processa e retorna um gráfico com as estatísticas básicas de
     * acesso do mês anterior completo.
     * 
     * @access public
     * @author Eliel de Paula <elieldepaula@gmail.com>
     * @return void 
     */
    public function ultimo_mes() {
        // Faz a conexão.
        $this->gapi->start($this->config->item('google_email_profile'), $this->config->item('google_password'));
        $id = $this->config->item('google_id_profile');
        // Defini os dias.
        $inicio = date('Y-m-01', strtotime('-1 month')); // 1° dia do mês passado
        $fim = date('Y-m-t', strtotime('-1 month')); // Último dia do mês passado
        // Faz a consulta.
        $this->gapi->requestReportData($id, 'month', array('pageviews', 'visits'), null, null, $inicio, $fim);
        // Monta o título com o total de acessos do mês.
        foreach ($this->gapi->getResults() as $dados) {
            $titulo = 'Periodo: ' . $dados . '/' . date("Y") . ' - ' . $dados->getVisits() . ' Visita(s) e ' . $dados->getPageviews() . ' Pageview(s)';
        }
        // Faz outra consulta para listar os acessos por dia.
        $this->gapi->requestReportData($id, 'day', array('pageviews', 'visits'), 'day', null, $inicio, $fim, 1, 50);
        // Monta o array com os valores
        $data = array();
        foreach ($this->gapi->getResults() as $dados) {
            $rel = array($dados, $dados->getVisits());
            array_push($data, $rel);
        }

        $this->load->library('phplot');
        $plot = $this->phplot;
        $plot->start(900, 350);
        $plot->SetTitle($titulo);
        $plot->SetXTitle("Dia");
        $plot->SetYTitle("Acessos");

        $plot->SetPlotType('bars');
        $plot->SetDataValues($data);
        $plot->DrawGraph();
    }

}

?>
